//二分 贪心 跳石头
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int L=0,n=0,m=0;
const ll N = 5e4+9;
int a[N];

int check(int mid)
{
	int ret = 0;
	int pre = 0;
	for(ll i = 1; i <= n; i++)
	{
		if(a[i] - a[pre] < mid)
		{
			ret++;
			continue;
		}
		pre = i;
	}
	if(L - a[pre] < mid && a[pre] != 0) return ret+1;
	if(L - a[pre] < mid && a[pre] == 0) return m+1;
	return ret;
}

int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin >> L >> n >> m;
	for(ll i = 1; i <= n; i++)
		cin >> a[i];
	
	ll l = 0;
	ll r = 1e9+9;
	while(l < r)
	{
		ll mid = (l + r + 1) / 2;
		if(check(mid) <= m)
			l = mid;
		else
			r = mid - 1;
	}
	cout << l <<endl;
	return 0;
}
